package com.zb.frame.modules.sys.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zb.frame.base.model.MPPage;
import com.zb.frame.modules.sys.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author bangZZ
 * @since 2020-06-04
 */
public interface UserService extends IService<User> {

    // 根据用户登录账号获取用户信息
    User getUserByUsername(String username);

    // 根据用户Id获取用户的状态和角色列表
    Map<String, Object> getUserStateAndRoles(Long userId);

    boolean updatePassword(User user);

    // 获取用户列表 分页
    MPPage getUserList(Page<User> page, Map<String, Object> params);

    // 根据用户Id获取用户信息
    User getUser(Long id);

    // 查询用户登陆账号是否已存在
    boolean isExistUserName(User user);

    // 新增用户
    User addUser(User user, Long createId);

    // 修改用户
    User updateUser(User oldUser, User newUser);

    // 用户停/启用
    boolean changeStatus(Long userId, Integer status);
}
